const app = getApp();
Page({
  data: {
    // 用户信息
    userInfo: {},
    // 判断显示授权前或授权后的样式
    hasUserInfo: false,
    code:null,
    detail:null
  },
  onLoad() {
    // 获取存储的用户授权信息
    const userinfo = wx.getStorageSync('userinfo') || {}

    // 判断是否存在已经授权的用户信息
    if (Object.keys(userinfo).length !== 0) {
      this.setData({
        userInfo: userinfo,
        hasUserInfo: true
      });
      wx.switchTab({
        url: '../rollcall/rollcall'
      })
    }
  },
  inputChange: function(e) {  
    this.setData({  
      [e.target.name] :  e.detail.value
    });  
  },  
  getUserProfile(e) {
    let that = this
    // 获取个人信息
    wx.getUserProfile({
      desc: '用于获取用户个人信息',
      success: function (detail) {
        wx.login({
          success: res => {
            that.setData({
              code: res.code,//登录凭证
              detail:detail,
              userInfo: detail.userInfo,
              hasUserInfo: true
            });
            that.login();
          }
        });
      },
      fail: function (e) {
       wx.showModal({
         content: '取消授权将会影响相关服务，您确定取消授权吗？',
         success (res) {
           if (res.confirm) {
             wx.showToast({
               title: '已取消授权',
               duration: 1500
             })
           } else if (res.cancel) {
             that.getUserProfile()
           }
         }

       })
      }
    })
  },
  login(){
    wx.request({
      url: app.globalData.url+'/wxuser', //自己的服务接口地址
      method: 'post',
      // 需要传给后端的数据
      data: {
        encryptedData: this.data.detail.encryptedData,
        iv: this.data.detail.iv,
        code: this.data.code,
        userInfo: this.data.detail.rawData
      },
      success: (res) => {
        if(res.data.code === 0){
          // 将用户授权信息存储到本地
          wx.setStorageSync('userinfo', {...this.data.detail.userInfo,"username":res.data.data.username})
          // 将后端返回的token存储到本地
          wx.setStorageSync('token', res.data.data.token)
          wx.switchTab({
            url: '../rollcall/rollcall'
          })
        }
      },
      fail: function () {
        console.log('系统错误')
      }
    })
  
  }
})
